/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package test.net.sourceforge.pmd.ast;
import net.sourceforge.pmd.ast.ASTClassDeclaration;
import java.util.Iterator;
import java.util.Set;
public class ClassDeclTest extends ParserTst {
public void testPublic() throws Throwable {
String access[] = {"public"};
ASTClassDeclaration acd = getClassDecl(access);
verifyFlags(acd, true, false, false, false);
}
public void testAbstract() throws Throwable {
String access[] = {"abstract"};
ASTClassDeclaration acd = getClassDecl(access);
verifyFlags(acd, false, true, false, false);
}
public void testFinal() throws Throwable {
String access[] = {"final"};
ASTClassDeclaration acd = getClassDecl(access);
verifyFlags(acd, false, false, true, false);
}
public void testStrict() throws Throwable {
String access[] = {"strictfp"};
ASTClassDeclaration acd = getClassDecl(access);
verifyFlags(acd, false, false, false, true);
}
public void testPublicFinal() throws Throwable {
String access[] = {"public", "final"};
ASTClassDeclaration acd = getClassDecl(access);
verifyFlags(acd, true, false, true, false);
}
public void verifyFlags(ASTClassDeclaration acd, boolean bPublic, boolean bAbstract, boolean bFinal, boolean bStrict) {
assertEquals("Public: ", bPublic, acd.isPublic());
assertEquals("Abstract: ", bAbstract, acd.isAbstract());
assertEquals("Final: ", bFinal, acd.isFinal());
assertEquals("Strict: ", bStrict, acd.isStrict());
}
public ASTClassDeclaration getClassDecl(String access[]) throws Throwable {
String javaCode = "";
for (int i = 0; i < access.length; i++) {
javaCode += access[i] + " ";
}
javaCode += " class Test { } ";
Set classes = getNodes(ASTClassDeclaration.class, javaCode);
assertEquals("Wrong number of classes", 1, classes.size());
Iterator i = classes.iterator();
return (ASTClassDeclaration) i.next();
}
}